package com.jframework.licp.test.basetest;

import static org.junit.Assert.assertEquals;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Random;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
import com.jfire.framework.ex.test.rule.CustomRule;
import com.jfireframework.baseutil.StringUtil;
import com.jfireframework.baseutil.collection.buffer.ByteBuf;
import com.jfireframework.baseutil.collection.buffer.HeapByteBuf;
import com.jfireframework.baseutil.encrypt.AesUtil;
import com.jfireframework.licp.InternalLicp;
import com.jframework.licp.test.basetest.data.ArrayData;
import com.jframework.licp.test.basetest.data.BaseData;
import com.jframework.licp.test.basetest.data.LongData;
import com.jframework.licp.test.basetest.data.Person;
import com.jframework.licp.test.basetest.data.WrapData;

public class RightTest2
{
    
    @Rule
    public CustomRule rule = new CustomRule();
    
    /**
     * 测试是否能够正确的反序列化
     */
    @Test
    public void withTypeDeTest()
    {
        InternalLicp licp = new InternalLicp();
        byte[] src = StringUtil.hexStringToBytes("000000b60063006f006d002e006a006600720061006d00650077006f0072006b002e006c006900630070002e0074006500730074002e00620061007300650074006500730074002e0064006100740061002e0050006500720073006f006e000000190000004f00000155c9941743000000a70000001e0000004f00000155c9941746000000000000005b0000004e005b004c006a006100760061002e006c0061006e0067002e004f0062006a006500630074003b0000000a000000be0063006f006d002e006a006600720061006d00650077006f0072006b002e006c006900630070002e0074006500730074002e00620061007300650074006500730074002e0064006100740061002e004200610073006500440061007400610cb55c980000631100000046005b004c006a006100760061002e007500740069006c002e0044006100740065003b000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330030003900340034003800320034003100340035000000000000008b00000004000000010000000200000004000000050000008b00000004000000010000000200000004000000050000000e005b005b00490000000200000002000000040000000100000002000000040000000500000002000000060000000100000002000000030000000400000005000000060000008700000007010001000000010000008700000007010001000000010000000e005b005b005a000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a0068006500660000000e005b005b0043000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b00000004321234960000000e005b005b0042000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d0000000e005b005b00530000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab310000000e005b005b004a00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000000e005b005b004400000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a0000000e005b005b0046000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b000000020000002973417357564b7638546c687344614e3279584e70000000297238555070517073576b31494b73494c335a64300000004b000000020000002972726a38687a5976394b4657714c4b327054303700000029354d306b6237775a663649644178486c3064783300000052005b005b004c006a006100760061002e006c0061006e0067002e0053007400720069006e0067003b000000020000000200000002000000294b31626f4d5a3654613475326131376c344e493000000029576b375a43326e3267416f52476e4a70446d637300000002000000020000002947746f4d3473654b414d727537747a686c373953000000294661347339397a774e353441746c504b554c6869000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320038003800330035003600350037003300370038000000010000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029326f6c53765a6a3838774156546a70494d6d616d0000002966625a77473357625362783157695341706566520000004b0000000200000029484d456178486c65517957547333597679544a660000002943414a4341624d495679504357556e76496a474f000000d700000002000000020000000200000029596f6b36477272615068504638713545566c477800000029395141655275665143684b495875537730664d640000000200000002000000297968554f55384b4b554a7437766b34354f50436c000000296d4756623274706d6953626c66504a52564c7063000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320038003800390037003500370036003100360035000000020000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b00000002000000296256396f4f4649526b597a72346e637862327142000000294e64676a425865393061763675785348464d31330000004b0000000200000029544953706e77725375343571337a7459474770700000002967315870727950544e77587a4b53554f6d577773000000d70000000200000002000000020000002953654b323454636c363175316f366946635a6b7000000029787a316e6e716563796678694c5a453264486b5700000002000000020000002973436b7a4d684d707871516c5a4b6c3776785543000000296c7879793231424c6f5746684f31496b69563952000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320039003700340030003100390035003200370039000000030000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029377a6b646f72684a6836776a667259364471584500000029466b6b6e715172496344456b724e554c73394d520000004b0000000200000029433159575a6645734976323754623674684f745000000029416b5350363366714c37374b3747335a56696e49000000d7000000020000000200000002000000293242543877696b70704e5677476b796e3967336b000000294a7266527058383447334954475a347342443539000000020000000200000029754848565452355966776c514a4e757572556155000000294e683248424564417863564175374f33456e4b30000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320038003500390035003100370030003200380038000000040000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029396c38445a61456b456d364762487334704b4d5700000029637158596d4779756d576b32654e38334a554a6d0000004b000000020000002949485747395363544534347a724d55414e736a65000000296d5a377057474b6d566b374a5176464d62396f6c000000d700000002000000020000000200000029784f4e5772556c446a484778304f48524a526f52000000294144387248317037356a4964557546634f375843000000020000000200000029594d7a71674d65373842486f6663556f4c487a5900000029454a575a374a5a4458664e3954497a6f4b573941000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330030003100370036003500300039003200310030000000050000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b00000002000000296555685a4d614c5442726f674f6177753246594a0000002947735a73773859425538423237677669373641340000004b00000002000000294c366762476d6c6f664b504c47484a776d794b310000002956796c52694a6a474f68764e504a575952504748000000d70000000200000002000000020000002939584f656f75484a486f6a467667486b375151680000002959697138366f6b52784a686231764743664c74500000000200000002000000296b6c78587438494a45714b445153535436684c6c0000002941616c56567377344b6d5a4c4630676958703177000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330031003100340031003800310033003300320032000000060000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b00000002000000294571526d66446b5a5234346761486f6a76766a7100000029305a434a6d794b713559655a6d35456432474a520000004b0000000200000029764c334c356d4e306449466a767251454133533000000029664d626e6e5636385135515353675a4744723271000000d70000000200000002000000020000002974476e33326c6776666d4c4e775a35793655714600000029385a36336769555377754d485375434a4d525941000000020000000200000029304573734b444d445a79477076587a6750344b570000002942556b53717165644330536c3130443656334b31000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330031003000320032003300370035003900370036000000070000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b000000020000002965316a7534647979516d34487a646f337578633600000029544f367a31755336476866426745704a487142370000004b00000002000000294d634f53315242304f4734645369745a45633236000000295557613144304f75387a544e6658734b48644874000000d7000000020000000200000002000000294d44715635365841684f555a506a75696761466c000000294738583858326b75304a4b4e3366376769694e5600000002000000020000002948716b636a67466579594c3944516573526e537a00000029784b6178717534487636757a5a48475779716365000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320038003900380037003000380030003600370038000000080000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b00000002000000297a33565878385634337739523431454c374b5363000000294d336179356e574e526e713747424b6e735461590000004b0000000200000029416f6845797a5066654a4378524c4f694f794d460000002977475a726b37773470444b477541487a6f6e7a6e000000d7000000020000000200000002000000294e6944444f5a3171496979504966546634385268000000294431736e6450454771747159324951444932373000000002000000020000002973323369333669674b6c3943794f4351437938380000002958644c71475a5079554e4a747537466c696d5053000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330030003900390035003800320035003400300037000000090000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b000000020000002976656e5053367a5852733933557a6d784270504200000029706c6f324a39515654536c666b4d6248754f50580000004b00000002000000296f4d4a56755268485964575162485538353148570000002930483752627267677078674e65565a5a59347649000000d7000000020000000200000002000000294934617a6c75544a69356359784b6f5a614579320000002957794b5452664336484a4c563066336c377a4a7600000002000000020000002938735a6939705764363855504f7946396464754c0000002974456271515271504931314c5a7875527a6a68660000000a0000000a0000006300000000000000003f4000000000000a0000000a0000006a005b004c006a006100760061002e007500740069006c002e0048006100730068004d0061007000240045006e007400720079003b000000100000005e006a006100760061002e007500740069006c002e0048006100730068004d0061007000240045006e00740072007900000000000000070000000000000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d003200350035003300300032003800300036003800360039003900350000001e0000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b00000002000000294573415566497a715664426d486547506d6e7638000000294a303063734d324d7a73684576755a6b6f7871340000004b00000002000000294367414c5a73524c4759384e4752737248505764000000296a366647725558346830716e5357354b57497735000000d7000000020000000200000002000000296539596e334b77725634304c6e5951694156314e00000029783174646a3048386838396d47733665305a4b6700000002000000020000002961384e4b77494f7777576c36537654333772316100000029564a4c766361683641753836575a37586d646462000000df00000001000000070000000100000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d003200350035003300320030003100330032003300310035003900340000001f0000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b00000002000000297137366e46596d63567939715565683942306772000000295a75463744416955654c794b587876414e4350510000004b000000020000002955756b6a307576465632704d47645a556a3567650000002977624d357344774b4f3541727877655573655337000000d700000002000000020000000200000029634950436134687548367349487a4e6f5851797400000029554133585375524f536363535150514f6c387072000000020000000200000029507a555258496a4f6b746832436c796f5838575a00000029366c3879644e664b4a445958396f344c467a5578000000df00000002000000070000000200000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320039003400320039003700380034003800370030000000200000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b000000020000002957453277454447775167667457456c79635a68680000002961316a47306a33464a6e39365a6b5038716d70310000004b0000000200000029367546576b363956485069576b4a584e77724b790000002979457533757970356f4450594d794e73734d4750000000d7000000020000000200000002000000297651527a41687450747942385966676c35653137000000293639426d4b7763544750697a3344684f4d6d4748000000020000000200000029565045777362717132427345675a4e376248774200000029783750546266446568547a4a3570687a5a585152000000df00000003000000070000000300000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330031003500330031003300300032003700300036000000210000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b00000002000000294c3377436a4a41745746594a445431336b364f3800000029705174724a6852356644664967377769577244420000004b0000000200000029376a384f627a474248383737486e4f356267674a000000294a684632794b4b366b4462757678446d6b386478000000d700000002000000020000000200000029353537496662797a677147444952737a7045654f0000002979566c6134505a353850536c50565030726a444a0000000200000002000000294b34755030587439764264516554794f3763796b000000296c4e6a314f52446d526150617a784d7353664233000000df00000004000000070000000400000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320039003000350031003700380034003600330039000000220000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b00000002000000294249536d304f6b636e4130614c4554516c785a31000000294d725a61316e70307537585a6d5255417a6446320000004b00000002000000297875766959753241315a6d6d67506d5435743639000000297872364c6f704a554f377070627355454a4f7252000000d700000002000000020000000200000029746250334e694b6e7136547a65573667354a676400000029583255616a30666970714e79563937456d6f3435000000020000000200000029416e6156416e63386b4765444e526968426d476f00000029363572617933444a44505156514d446435416f69000000df00000005000000070000000500000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330031003000300032003000340038003400390035000000230000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b00000002000000294f5865576d32485a3847415738696f7278546532000000293470767266756f50594f52303331484d30746a630000004b0000000200000029694d784434324e6e4b68354f576877724a33364e000000296570713271714e327872736b5771686470594d31000000d7000000020000000200000002000000296f377a3161556e6430597861506149356d55474c00000029754477666b66487a63506a37654a3738314b6774000000020000000200000029795173664557754b4b4e32457866523369755246000000295832684636626f5064386e513376417a31354830000000df00000006000000070000000600000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330032003100340030003100350033003800300035000000240000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b00000002000000297348796633597475576a7a566a723641414f61680000002935464c4c356f5164303574504763676d595062330000004b0000000200000029314e35786c4f71775576674a6a5173514435334f00000029326661694d6f455a615243515748437347324337000000d700000002000000020000000200000029554f39754b4974453047795671696757724746410000002955716b7936575a34767878374d7035424f6341330000000200000002000000294f6b71384a7246456458393371727a34684e6c4300000029787058455952676e554a586769487a3479345848000000df00000007000000070000000700000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320038003700360034003700350034003700360033000000250000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b000000020000002970695745583970704a6b6848644f6f50536478580000002958456a7254436f5638685237656e4d6b5a5a62620000004b00000002000000296367376e6f4c7a577034764a683144433951685100000029584855564f423364634865384e4f58434d4e6e4d000000d7000000020000000200000002000000296e7850666a304a306e616969766a4b767842546300000029326663324f7468594b38314238756558514147480000000200000002000000296d617a716b645539357764744c4c7254524f5559000000297332334c4b694a37314747494d42515467794754000000df00000008000000070000000800000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320039003700340037003900380032003400360038000000260000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b00000002000000294e4a31477074616c366d547071694a58716546500000002936626769504c634576617046335166346d7234530000004b0000000200000029736541376f6f435174714e695366725a67646f32000000294a46456e5247615a63716261423377314d504b32000000d7000000020000000200000002000000296c69384579727a4d62626c4336586f6437593735000000297a32475a4658587370357277596e397737357130000000020000000200000029744a7a547a454f416a564a75457954627a593430000000296b38557131366b79487753493669323279504a6d000000df00000009000000070000000900000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330031003300300037003700370035003100330032000000270000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b000000020000002946374763395a444f61674571566944327a5351490000002945627638553449726c33466771384e746872416e0000004b0000000200000029484158324a3045426a53334167615a526d637650000000293879775354375951374570615336654477323673000000d7000000020000000200000002000000294f416d7750427937566652693036536c784948470000002939353970636d4c37706557595a78593046624d4b000000020000000200000029583057346b546f70597a696346716d3144484f370000002966737239376a78624a75433657534e457569506a0000000000000000000000000000000000000000000000000000000c0000000000000017007a00680061006e0067007300680069005b0069006e000000b7000000020000000200000002000000010000000200000002000000030000000300000004000000050000005b000000ab0000000a000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320038003700300035003900320039003000300039000000000000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b000000020000002934624751576f6e395373586642383257623078410000002978714f746e79587350786a684d61754948464e750000004b00000002000000295a526e713970327159773066695a6a4a614a774b000000296c6f6a796a6359637267614c5069444d6c6b5545000000d700000002000000020000000200000029647a704241485552674d4f783569694252775556000000296e57373849536e36545555324233623579714234000000020000000200000029585a37345964655533764f4157746a6b794746560000002930784e4467577430477351545a76495a73364a61000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330030003700360037003000380035003600310037000000010000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b00000002000000296f54617755446d534230796e313232766d534865000000294a614e543335384a7451576e4f53506c323065610000004b00000002000000294b795246325336346433427a47554b51476c706500000029695457484f5168704544346d4458595350317979000000d70000000200000002000000020000002979624350395578696b4938324f45646954715a5a000000294f6936616d6a545035304351504d30684f774b6100000002000000020000002974344f4c6769485a6a5633793933554447424d440000002946674677436656584f714d6d686264733454704f000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320038003600350036003700340032003200330039000000020000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029764f336d53363955784433487a6c78507345596a000000296c716b534e4a6650713750334a70793251336a5a0000004b00000002000000294a4934556569587246767251757830787755736900000029676b6a656650386f4f6e6c44506a3064597a494c000000d7000000020000000200000002000000294241693835776336745864683067716d7848384100000029" + "386431467874724c4d56436c413062376c56695500000002000000020000002953637450454e48677675744d465346586a30527300000029656f556337574347413548324463537470643051000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320039003400370034003300300033003400310033000000030000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029486a37727656484e7966394c4f373264363139520000002948705537594f6a506b564b5866616e64394266490000004b000000020000002957496547486d6c3538536b586132346975427a420000002962546d494e6356654b7a4b385044375970735732000000d7000000020000000200000002000000294d373674325a7470343974434d5649356b716f4a0000002949445064645a706b4a756f676b5242556e567a47000000020000000200000029343744746f78796f6b4b54714e55694345487351000000294c795178797a6476337657786a6b616e71714b38000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320039003200300037003100320033003100330030000000040000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029476c444170735a6b343779695957796c747333680000002978795347766d6e4e4c5552304a3561574258454a0000004b00000002000000296c7849733638376846556d65304a73664c54554200000029334d5a677470745145416e576569316b7049494e000000d7000000020000000200000002000000294a4b6b4d694c4c46414f66737339625959345a4d000000296750773445594c6c75324e63424a5649547378500000000200000002000000295371537550756a563955775657424c395669466200000029366139544c7145624256546f48417254666f3044000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330030003400390036003000340039003600380038000000050000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029494b746a4f5a7874676e74786578415751494354000000294e3952566d6935414c4d387648664a354e4c556a0000004b000000020000002974356e587769676550504e397033635652625048000000294c6a336373386e6555524256636f4e4f6a466f71000000d7000000020000000200000002000000294e50337264663537755966707647786a6c4e6d4d000000295a487a6f545173756c37493164494350396463770000000200000002000000294e5566764346656b7750536b4134396d5577634500000029796a586f756a44544250376c6161527361416843000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320038003600300035003700310034003800390036000000060000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b000000020000002945486f386776787a4852657938594e565a71595200000029446846567670573644304c6234734277707041560000004b0000000200000029435949544553485648514d39397133336d733365000000294b5a45464b52745662636c38626f706567716465000000d700000002000000020000000200000029334b74416835553362577870346665354a4e6637000000297253483449355763494c7957524a63304636665400000002000000020000002967386e677454684931536d354276687a5947423200000029594370746f47654451796e6a73416a4c5a5a7167000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330032003700360031003400310039003800370033000000070000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029454a4452785952564c536d6138743972614f5157000000294d6b384e7a587664483371775663755236396d450000004b000000020000002961704a465a504c4870677053435778526569615a000000296b324e775032554575617575537a547838594236000000d70000000200000002000000020000002967654a354c7a4e57697a42795946424f37306d620000002965733866747a66557968676e7a547678417a5a78000000020000000200000029524e446f58585337636f4355453371626a565032000000294c773971713555476b3373623658537967667066000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330031003300310037003800330030003600390035000000080000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029317856773252476e4d685555477330433833615700000029393577477752384a463365306a4c4737304e316b0000004b00000002000000293673474366746952534a337476484c6f56636c550000002946475a414a683570524f415370533433756f5768000000d7000000020000000200000002000000297374446d764276646141427a79546439526d344b00000029654649474c3132616a4e4b4d5a31396d4b516d360000000200000002000000296271436e7a37524f34344b61336d39346a5a564e000000296c4857494374466c6c49476f61497345646e7167000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330030003200310033003000300030003500350034000000090000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029316d75383642556d6148583663784b327670686600000029704f537a4f654154337a673945474d554741536b0000004b0000000200000029506d6d6b6b724e755341526f615479306d34645500000029504870376f5a3072597347684d57363268646a67000000d700000002000000020000000200000029635534523270564845623339305241614b34665800000029555743544143577448483641776a77754a4d77300000000200000002000000296b524a7a35775a666e5057324361775765543942000000294d49635544736e354f5156617276716b42744f500000000a0000000a0000006300000000000000003f4000000000000a0000000a000000db00000010000000df00000000000007d100000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d003200350035003200390030003600350037003800320030003500300000001e0000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b00000002000000296c4e4f30584479585868777a6542384b7a476c4b000000295538574143685165505163486c6677786272566f0000004b000000020000002952777a554f4f34534b5a5a5036314d6c6931747500000029516f52773335437247464b32536a5244466f5a72000000d7000000020000000200000002000000296c33534c327045307472475738366d70387843670000002970754f666f74773251646d396b3967526b5069410000000200000002000000296463666c744b47357852676f5573394f586c774d00000029434d78555632494430386d637945704b6374414f000000df000000010000089d00000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d003200350035003300320033003500390036003600330038003900310000001f0000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b000000020000002975333935514c5670767937437052653359514161000000293145774f624d43514b4e314e6b4d70454b5872390000004b0000000200000029436c437a5a516331426f74394c373771766955590000002951476f44773871787647657a786f6f746a7a5874000000d7000000020000000200000002000000294b6168775a4863493774714645374a315943495a0000002953784137466353654364427a5a696156664a39380000000200000002000000294850496f6247566f3033704a4e314d3430636264000000296c5177647855526a7a354267554c314f47336a56000000df000000020000096900000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330032003100390039003700370038003300320039000000200000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029564e436f4a717a4c4a456e666d7772304e6b5553000000293738564e416d55666e4158714e64433448504f680000004b000000020000002933466f4275467847346672594369507868304e38000000296953444a4e6d317551307164584b34446d426f41000000d7000000020000000200000002000000297578637a4a363550566b70704f4e4c557850467a00000029655a6961657555666e553769716a6747646d797a0000000200000002000000294c4943684934466f62527448436463674d59374900000029366363426a4244525471625832634663356a4848000000df0000000300000a3500000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320039003300360036003100300035003400310039000000210000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b000000020000002969333151776367693947567a416664536f36316300000029647a7653745932375653346836493673773245310000004b0000000200000029466e7a41625254563834476170345a4a636c4366000000294b6270697053616f637765636e7a553666773834000000d700000002000000020000000200000029726643435a646a50356b726e4c6c3633306c5350000000295a613941416c6636446538583278336a7574754a0000000200000002000000295036766e484937785956656d62564735314e386800000029754874326874736a52797a635638725449574e4d000000df0000000400000b0100000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320039003600360036003900390038003700320032000000220000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029724a704133557666457a724c466b317162594568000000294a71494c724946453466724462484e6b497372690000004b00000002000000295651346f3072376f37686858716a636158465841000000296c4a5468614f4d4f304a62597a6b517758304e57000000d7000000020000000200000002000000294161444d3533426a366958734449485658706d67000000294d64747676734a715563334c4f537675375865570000000200000002000000294957455a63316d6b77716d4f73564b546243374600000029473937383746304d676a52326a4775624e705179000000df0000000500000bcd00000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320038003800310037003400350039003200380036000000230000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029765746424f306f625654704872435944374c493800000029434e4648545662596f354978424f77475541654f0000004b000000020000002967676d30524d43766a756a6c5a5459704733475300000029624656684348654c644f50307a5347424638534d000000d70000000200000002000000020000002954625251327462697a524a567a535051366d565400000029544e785764415859555a34726b5a38337a7259760000000200000002000000296a426c526233577a306a37685a4d67376c57303600000029324f34373158483062584e694e446d6a7a416149000000df0000000600000c9900000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330032003200350030003700350038003000360036000000240000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029664e534b52494652563034624e45334769696d38000000296e643358446d6d57754b524d66645959415a30430000004b0000000200000029644434665a43547644434f686b6b385a704c6a6500000029506d6f49794e374a56484f6f63596462726b5841000000d7000000020000000200000002000000296b4c5132656837387753527344353170346b7a4300000029355970564d37394c54424f5944385979366d7278000000020000000200000029656773716a6172587066396f36536473786c567a000000293732595a65364f54496e66756c313150456b7547000000df0000000700000d6500000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500320038003900320034003600300036003500360034000000250000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb00000002000000" + "0200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b000000020000002956365a42526d33764b636c673654335536394d4200000029796b306f6d536e4c505a657a5265306c4b6b6f440000004b00000002000000294f437361384d6e6861434e51464d7937526872330000002950334c72624e6c5a64684658793448376f703655000000d7000000020000000200000002000000295346574354376c39436833376443613259325177000000296a726339314c5433686a4838564265734339583100000002000000020000002951516a344f486a58656a355077436a4352776953000000295755504d61386466366947314c666958786a734a000000df0000000800000e3100000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330030003400390035003500330038003700340032000000260000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b0000000200000029354f5958743449534e577955776e633369344f4c000000297a3078744e56584162794e57413236314d7874310000004b000000020000002974685056634b42465a7250336e6b6c4e6f33487300000029586d387a594564613845713956586a524f464134000000d700000002000000020000000200000029694b6b745754453550584f55474b72344b473247000000297132766d365446634457304b516f4e6c4a474d5400000002000000020000002947684d794d63644b736747376b3067336e716948000000294b415767766f4a447856657248684965436c7361000000df0000000900000efd00000000000000af0cb55c9800006311000000b3000000020000004f0000000000ce8b9c0000004f00000000033ee97f001800044f5478ea52c1410c3cc9b4a2339c459bd19a0000001d00320035003500330032003200340038003800300037003300320031000000270000008b00000004000000010000000200000004000000050000008b0000000400000001000000020000000400000005000000b7000000020000000200000004000000010000000200000004000000050000000200000006000000010000000200000003000000040000000500000006000000870000000701000100000001000000870000000701000100000001000000bb000000020000000200000007010001000000010000000200000007010001000000000000009300000007006100760071006a0068006500660000009300000007006100760071006a006800650066000000bf000000020000000200000007006100760071006a0068006500660000000200000007006100760071006a0068006500660000009b00000004321234960000009b0000000432123496000000c3000000020000000200000004321234960000000200000004321234960000008f000000060003000800d501c30138002d0000008f000000060003000800d501c30138002d000000c70000000200000002000000060003000800d501c30138002d00000002000000060003000800d501c30138002d000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000970000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000cb00000002000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000020000000400000002ddeb79310000007a09438a11000002d90becddc1000000004e44ab31000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000a30000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000cf00000002000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd3000000020000000341f818f360e7c88a40b22674bc6a7efa425fd4eb14a8ddd30000009f00000003473596334742b933491dec6a0000009f00000003473596334742b933491dec6a000000d3000000020000000200000003473596334742b933491dec6a0000000200000003473596334742b933491dec6a0000004b00000002000000294837566c313764384f67454d647657714268304b000000296c72676b744f314169394b57464774355069434f0000004b00000002000000294c347a6979457431684f45324d7453326f784f4a000000296246674470553730774c4c63466a6c524d36375a000000d70000000200000002000000020000002941746b34757a6e697064787134424b5150723635000000296730595239776b314e4a38437933696f6430745800000002000000020000002945467a59786a67446b574f433336533249476353000000297373694f5139326959564c6d4d646d76367a464a0000000000000000000000000000000000000000000000000000000c000000000000000d006c0069006e00620069006e000000b700000002000000020000000200000001000000020000000200000003000000030000000400000005");
        ByteBuffer buffer = ByteBuffer.allocate(src.length);
        buffer.put(src);
        buffer.flip();
        licp.deserialize(buffer);
    }
    
    @Test
    public void baseTypeTest() throws IllegalArgumentException, IllegalAccessException, UnsupportedEncodingException, ClassNotFoundException, InstantiationException
    {
        ByteBuf<?> buf = HeapByteBuf.allocate(256);
        // 创建需要序列化的对象
        BaseData baseData = new BaseData(1);
        // 构建lbse对象，该对象是非线程安全的，请注意
        InternalLicp context = new InternalLicp();
        context.register(BaseData.class);
        // 进行序列化，返回的是一个buffer对象
        context.serialize(baseData, buf);
        // 传入二进制buffer对象，读取其中的 数据并且反序列化成对象
        byte[] src = buf.toArray();
        ByteBuffer buffer = ByteBuffer.allocate(src.length);
        buffer.put(src).flip();
        BaseData result = (BaseData) context.deserialize(buffer);
        assertEquals(result.getA(), baseData.getA());
        assertEquals(result.isB(), baseData.isB());
        assertEquals(result.getC(), baseData.getC());
        assertEquals(result.getD(), baseData.getD());
        assertEquals(result.getE(), baseData.getE());
        assertEquals(result.getF(), baseData.getF());
        assertEquals(result.getG(), baseData.getG(), 0.01);
        assertEquals(result.getI(), baseData.getI());
        assertEquals(result.getH(), baseData.getH(), 0.01);
        for (int i = 0; i < result.getJ().length; i++)
        {
            assertEquals(result.getJ()[i], baseData.getJ()[i]);
        }
        for (int i = 0; i < result.getK().length; i++)
        {
            assertEquals(result.getK()[i], baseData.getK()[i]);
        }
        for (int i = 0; i < result.getL().length; i++)
        {
            assertEquals(result.getL()[i], baseData.getL()[i]);
        }
        for (int i = 0; i < result.getM().length; i++)
        {
            assertEquals(result.getM()[i], baseData.getM()[i]);
        }
        for (int i = 0; i < result.getN().length; i++)
        {
            assertEquals(result.getN()[i], baseData.getN()[i]);
        }
        for (int i = 0; i < result.getO().length; i++)
        {
            assertEquals(result.getO()[i], baseData.getO()[i]);
        }
        for (int i = 0; i < result.getP().length; i++)
        {
            assertEquals(result.getP()[i], baseData.getP()[i], 0.1);
        }
        for (int i = 0; i < result.getQ().length; i++)
        {
            assertEquals(result.getQ()[i], baseData.getQ()[i], 0.1);
        }
        for (int i = 0; i < result.getR().length; i++)
        {
            assertEquals(result.getR()[i], baseData.getR()[i]);
        }
        //
    }
    
    @Test
    public void wrapTest() throws IllegalArgumentException, IllegalAccessException, UnsupportedEncodingException, ClassNotFoundException, InstantiationException
    {
        ByteBuf<?> buf = HeapByteBuf.allocate(256);
        WrapData wrapData = new WrapData();
        InternalLicp context = new InternalLicp();
        context.register(WrapData.class);
        context.serialize(wrapData, buf);
        byte[] src = buf.toArray();
        ByteBuffer buffer = ByteBuffer.allocate(src.length);
        buffer.put(src).flip();
        WrapData result = (WrapData) context.deserialize(buffer);
        assertEquals(result.getA(), wrapData.getA());
        assertEquals(result.getB(), wrapData.getB());
        assertEquals(result.getC(), wrapData.getC());
        assertEquals(result.getD(), wrapData.getD());
        assertEquals(result.getE(), wrapData.getE());
        assertEquals(result.getF(), wrapData.getF());
        assertEquals(result.getG(), wrapData.getG(), 0.01);
        assertEquals(result.getH(), wrapData.getH(), 0.01);
        assertEquals(result.getI(), wrapData.getI());
        for (int i = 0; i < result.getJ().length; i++)
        {
            assertEquals(result.getJ()[i], wrapData.getJ()[i]);
        }
        for (int i = 0; i < result.getK().length; i++)
        {
            assertEquals(result.getK()[i], wrapData.getK()[i]);
        }
        for (int i = 0; i < result.getL().length; i++)
        {
            assertEquals(result.getL()[i], wrapData.getL()[i]);
        }
        for (int i = 0; i < result.getM().length; i++)
        {
            assertEquals(result.getM()[i], wrapData.getM()[i]);
        }
        for (int i = 0; i < result.getN().length; i++)
        {
            assertEquals(result.getN()[i], wrapData.getN()[i]);
        }
        for (int i = 0; i < result.getO().length; i++)
        {
            assertEquals(result.getO()[i], wrapData.getO()[i]);
        }
        for (int i = 0; i < result.getP().length; i++)
        {
            assertEquals(result.getP()[i], wrapData.getP()[i], 0.1);
        }
        for (int i = 0; i < result.getQ().length; i++)
        {
            assertEquals(result.getQ()[i], wrapData.getQ()[i], 0.1);
        }
        for (int i = 0; i < result.getR().length; i++)
        {
            assertEquals(result.getR()[i], wrapData.getR()[i]);
        }
        for (int i = 0; i < wrapData.getList().size(); i++)
        {
            Assert.assertTrue(wrapData.getList().get(i).equals(result.getList().get(i)));
        }
        for (int i = 0; i < wrapData.getMap().size(); i++)
        {
            Assert.assertTrue(wrapData.getMap().get(i).equals(result.getMap().get(i)));
        }
        for (int i = 0; i < wrapData.getW().length; i++)
        {
            for (int j = 0; j < wrapData.getW()[i].length; j++)
            {
                Assert.assertEquals(result.getW()[i][j], wrapData.getW()[i][j]);
            }
        }
    }
    
    @Test
    public void referenceTest() throws IllegalArgumentException, IllegalAccessException, UnsupportedEncodingException, ClassNotFoundException, InstantiationException
    {
        ByteBuf<?> buf = HeapByteBuf.allocate(256);
        Person person = new Person("linbin", 25);
        Person tPerson = new Person("zhangshi[in", 30);
        person.setLeader(tPerson);
        InternalLicp context = new InternalLicp();
        buf.clear();
        context.serialize(person, buf);
        byte[] src = buf.toArray();
        ByteBuffer buffer = ByteBuffer.allocate(src.length);
        buffer.put(src).flip();
        Person result = context.deserialize(buffer);
        assertEquals("zhangshi[in", result.getLeader().getName());
    }
    
    @Test
    public void objectTest() throws IllegalArgumentException, IllegalAccessException, ClassNotFoundException, InstantiationException
    {
        ByteBuf<?> buf = HeapByteBuf.allocate(256);
        InternalLicp lbse = new InternalLicp();
        Calendar calendar = Calendar.getInstance();
        buf.clear();
        lbse.serialize(calendar, buf);
        byte[] src = buf.toArray();
        ByteBuffer buffer = ByteBuffer.allocate(src.length);
        buffer.put(src).flip();
        Calendar reCalendar = (Calendar) lbse.deserialize(buffer);
        Assert.assertTrue(reCalendar.equals(calendar));
    }
    
    @SuppressWarnings("unchecked")
    @Test
    public void listTest() throws IllegalArgumentException, IllegalAccessException, ClassNotFoundException, InstantiationException
    {
        ByteBuf<?> buf = HeapByteBuf.allocate(256);
        ArrayList<BaseData> list = new ArrayList<BaseData>();
        for (int i = 0; i < 5; i++)
        {
            list.add(new BaseData(i));
        }
        InternalLicp lbse = new InternalLicp();
        buf.clear();
        lbse.serialize(list, buf);
        byte[] src = buf.toArray();
        ByteBuffer buffer = ByteBuffer.allocate(src.length);
        buffer.put(src).flip();
        ArrayList<BaseData> result = (ArrayList<BaseData>) lbse.deserialize(buffer);
        Assert.assertTrue(list.equals(result));
    }
    
    @Test
    public void objectArrayTest()
    {
        Object[] array = new Object[4];
        array[0] = new Person();
        array[1] = new BaseData();
        array[2] = new LongData();
        array[3] = new WrapData();
        InternalLicp lbse = new InternalLicp();
        ByteBuf<?> buf = HeapByteBuf.allocate(256);
        lbse.serialize(array, buf.clear());
        byte[] src = buf.toArray();
        ByteBuffer buffer = ByteBuffer.allocate(src.length);
        buffer.put(src).flip();
        Object[] result = (Object[]) lbse.deserialize(buffer);
        Assert.assertTrue(((Person) result[0]).equals(array[0]));
    }
    
    @Test
    public void byteArrayTest()
    {
        ByteBuf<?> buf = HeapByteBuf.allocate(256);
        byte[] array = new byte[] { 1, 2, 5, 6, 8, 9 };
        InternalLicp lbse = new InternalLicp();
        lbse.serialize(array, buf.clear());
        byte[] src = buf.toArray();
        ByteBuffer buffer = ByteBuffer.allocate(src.length);
        buffer.put(src).flip();
        byte[] result = (byte[]) lbse.deserialize(buffer);
        for (int i = 0; i < array.length; i++)
        {
            assertEquals(array[i], result[i]);
        }
        
    }
    
    @Test
    public void booleanArrayTest()
    {
        ByteBuf<?> buf = HeapByteBuf.allocate(256);
        boolean[] array = new boolean[] { true, false, false, true, true, true };
        InternalLicp lbse = new InternalLicp();
        lbse.serialize(array, buf.clear());
        byte[] src = buf.toArray();
        ByteBuffer buffer = ByteBuffer.allocate(src.length);
        buffer.put(src).flip();
        boolean[] result = (boolean[]) lbse.deserialize(buffer);
        for (int i = 0; i < array.length; i++)
        {
            assertEquals(array[i], result[i]);
        }
    }
    
    @Test
    public void arrayDataTest()
    {
        
        ByteBuf<?> buf = HeapByteBuf.allocate(256);
        InternalLicp lbse = new InternalLicp();
        lbse.serialize(new ArrayData(), buf.clear());
        byte[] src = buf.toArray();
        ByteBuffer buffer = ByteBuffer.allocate(src.length);
        buffer.put(src).flip();
        lbse.deserialize(buffer);
    }
    
    @Test
    public void objectArrTest()
    {
        ByteBuf<?> buf = HeapByteBuf.allocate(256);
        Random random = new Random();
        byte[] key = new byte[16];
        random.nextBytes(key);
        AesUtil aesUtil = new AesUtil(key);
        Object[] data = new Object[] { Integer.valueOf(14), new BaseData[] { new BaseData(), new BaseData() } };
        InternalLicp lbse = new InternalLicp();
        lbse.serialize(data, buf.clear());
        byte[] aesResult = aesUtil.encrypt(buf.toArray());
        buf.clear().put(aesUtil.decrypt(aesResult));
        byte[] src = buf.toArray();
        ByteBuffer buffer = ByteBuffer.allocate(src.length);
        buffer.put(src).flip();
        Object[] result = (Object[]) lbse.deserialize(buffer);
        assertEquals(14, result[0]);
        assertEquals(((BaseData[]) data[1])[0], ((BaseData[]) result[1])[0]);
        assertEquals(((BaseData[]) data[1])[1], ((BaseData[]) result[1])[1]);
    }
    
}
